```html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>OSI模型数据传输过程详解</title>
    <link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/6.4.0/css/all.min.css">
    <link rel="stylesheet" href="https://cdn.staticfile.org/tailwindcss/2.2.19/tailwind.min.css">
    <link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/mermaid@latest/dist/mermaid.min.js"></script>
    <style>
        body {
            font-family: 'Noto Sans SC', Tahoma, Arial, Roboto, "Droid Sans", "Helvetica Neue", "Droid Sans Fallback", "Heiti SC", "Hiragino Sans GB", Simsun, sans-serif;
            color: #333;
            line-height: 1.8;
        }
        h1, h2, h3, h4 {
            font-family: 'Noto Serif SC', serif;
            font-weight: 700;
        }
        .hero-bg {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        }
        .card-hover {
            transition: all 0.3s ease;
        }
        .card-hover:hover {
            transform: translateY(-5px);
            box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
        }
        .drop-cap::first-letter {
            float: left;
            font-size: 4rem;
            line-height: 0.8;
            margin: 0.1em 0.2em 0 0;
            color: #667eea;
            font-weight: bold;
        }
        .footer-link {
            transition: all 0.2s ease;
        }
        .footer-link:hover {
            color: #a5b4fc;
            transform: translateX(3px);
        }
    </style>
</head>
<body class="bg-gray-50">
    <!-- Hero Section -->
    <section class="hero-bg text-white py-20 px-4">
        <div class="container mx-auto max-w-6xl">
            <div class="flex flex-col md:flex-row items-center">
                <div class="md:w-1/2 mb-10 md:mb-0">
                    <h1 class="text-4xl md:text-5xl font-bold mb-6 leading-tight">探索数据在网络中的旅程</h1>
                    <p class="text-xl mb-8 opacity-90">从应用层到物理层，揭秘OSI模型中数据传输的完整过程</p>
                    <div class="flex space-x-4">
                        <button class="bg-white text-indigo-700 px-6 py-3 rounded-lg font-semibold hover:bg-opacity-90 transition">开始探索</button>
                        <button class="border border-white text-white px-6 py-3 rounded-lg font-semibold hover:bg-white hover:bg-opacity-10 transition">了解更多</button>
                    </div>
                </div>
                <div class="md:w-1/2">
                    <div class="mermaid">
                        graph LR
                            A[应用层] -->|HTTP/SMTP/FTP| B[传输层]
                            B -->|TCP/UDP| C[网络层]
                            C -->|IP| D[数据链路层]
                            D -->|帧| E[物理层]
                            E -->|比特流| F[接收端]
                    </div>
                </div>
            </div>
        </div>
    </section>

    <!-- Main Content -->
    <main class="container mx-auto max-w-6xl py-12 px-4">
        <!-- Introduction -->
        <section class="mb-20">
            <div class="bg-white rounded-xl shadow-lg p-8">
                <h2 class="text-3xl font-bold mb-6 text-gray-800 border-b pb-4">数据传输概述</h2>
                <p class="drop-cap text-gray-700 mb-6">
                    在网络通信中，数据从源计算机到目标计算机的传输是一个复杂而精妙的过程。OSI(开放系统互连)模型将这一过程划分为七个层次，每一层都有其特定的功能和职责，共同确保数据能够准确、高效地传输。
                </p>
                <p class="text-gray-700 mb-6">
                    从应用层开始，数据会逐层向下传递，每一层都会添加自己的控制信息(头部)，直到物理层将数据转换为比特流通过物理介质传输。在接收端，数据又会逐层向上传递，每一层都会剥离相应的头部信息，最终将原始数据送达目标应用程序。
                </p>
                <div class="bg-indigo-50 p-6 rounded-lg border border-indigo-100">
                    <div class="flex items-start">
                        <i class="fas fa-info-circle text-indigo-500 text-2xl mr-4 mt-1"></i>
                        <div>
                            <h3 class="font-bold text-indigo-700 mb-2">关键概念</h3>
                            <p class="text-gray-700">封装与解封装是网络通信的核心机制。发送端从应用层向下层层封装数据，接收端则从物理层向上层层解封装数据。</p>
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <!-- Process Steps -->
        <section class="mb-20">
            <h2 class="text-3xl font-bold mb-8 text-gray-800">数据传输详细过程</h2>
            
            <!-- Step 1 -->
            <div class="grid md:grid-cols-12 gap-8 mb-12">
                <div class="md:col-span-4">
                    <div class="bg-white rounded-xl shadow-lg p-6 h-full card-hover">
                        <div class="text-indigo-500 text-4xl mb-4">01</div>
                        <h3 class="text-2xl font-bold mb-4 text-gray-800">应用层的准备与封装</h3>
                        <p class="text-gray-700 mb-4">应用层是用户与网络交互的接口，负责生成和处理应用程序数据。</p>
                        <ul class="text-gray-700 space-y-2">
                            <li><i class="fas fa-check-circle text-indigo-400 mr-2"></i>生成应用层数据</li>
                            <li><i class="fas fa-check-circle text-indigo-400 mr-2"></i>封装数据为特定格式</li>
                            <li><i class="fas fa-check-circle text-indigo-400 mr-2"></i>添加应用层头部信息</li>
                        </ul>
                    </div>
                </div>
                <div class="md:col-span-8">
                    <div class="bg-white rounded-xl shadow-lg p-8 h-full card-hover">
                        <h4 class="text-xl font-semibold mb-4 text-gray-800 flex items-center">
                            <i class="fas fa-laptop-code text-indigo-500 mr-3"></i>应用层工作原理
                        </h4>
                        <p class="text-gray-700 mb-4">
                            在源计算机的应用层，应用程序(如Web浏览器、邮件客户端等)根据特定的应用层协议(如HTTP、SMTP、FTP等)生成数据。这个数据通常称为应用层报文(Application Layer Message)。
                        </p>
                        <p class="text-gray-700">
                            应用层对数据进行必要的处理和封装，生成适合于传输的格式。此时，还可能会添加一些应用层的头部信息(如HTTP头部)，这些信息包含了数据的目的地、内容类型、编码方式等元数据。
                        </p>
                    </div>
                </div>
            </div>

            <!-- Step 2 -->
            <div class="grid md:grid-cols-12 gap-8 mb-12">
                <div class="md:col-span-4">
                    <div class="bg-white rounded-xl shadow-lg p-6 h-full card-hover">
                        <div class="text-indigo-500 text-4xl mb-4">02</div>
                        <h3 class="text-2xl font-bold mb-4 text-gray-800">传输层的封装与分段</h3>
                        <p class="text-gray-700 mb-4">传输层负责端到端的通信控制，确保数据可靠传输。</p>
                        <ul class="text-gray-700 space-y-2">
                            <li><i class="fas fa-exchange-alt text-indigo-400 mr-2"></i>TCP/UDP协议选择</li>
                            <li><i class="fas fa-network-wired text-indigo-400 mr-2"></i>数据分段与封装</li>
                            <li><i class="fas fa-shield-alt text-indigo-400 mr-2"></i>错误检测与重传</li>
                        </ul>
                    </div>
                </div>
                <div class="md:col-span-8">
                    <div class="bg-white rounded-xl shadow-lg p-8 h-full card-hover">
                        <h4 class="text-xl font-semibold mb-4 text-gray-800 flex items-center">
                            <i class="fas fa-random text-indigo-500 mr-3"></i>传输层关键机制
                        </h4>
                        <p class="text-gray-700 mb-4">
                            应用层数据被传递给传输层。在TCP/IP模型中，传输层主要使用TCP(传输控制协议)或UDP(用户数据报协议)进行处理。
                        </p>
                        <div class="grid md:grid-cols-2 gap-6">
                            <div class="bg-blue-50 p-4 rounded-lg">
                                <h5 class="font-bold text-blue-700 mb-2 flex items-center">
                                    <i class="fas fa-handshake mr-2"></i>TCP特点
                                </h5>
                                <ul class="text-gray-700 text-sm space-y-1">
                                    <li>• 面向连接，可靠传输</li>
                                    <li>• 三次握手建立连接</li>
                                    <li>• 分段传输大数据</li>
                                    <li>• 流量控制和拥塞控制</li>
                                    <li>• 错误检测与重传</li>
                                </ul>
                            </div>
                            <div class="bg-purple-50 p-4 rounded-lg">
                                <h5 class="font-bold text-purple-700 mb-2 flex items-center">
                                    <i class="fas fa-bolt mr-2"></i>UDP特点
                                </h5>
                                <ul class="text-gray-700 text-sm space-y-1">
                                    <li>• 无连接，不可靠传输</li>
                                    <li>• 低延迟，高效率</li>
                                    <li>• 无流量控制</li>
                                    <li>• 适合实时应用</li>
                                    <li>• 头部开销小</li>
                                </ul>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Step 3 -->
            <div class="grid md:grid-cols-12 gap-8 mb-12">
                <div class="md:col-span-4">
                    <div class="bg-white rounded-xl shadow-lg p-6 h-full card-hover">
                        <div class="text-indigo-500 text-4xl mb-4">03</div>
                        <h3 class="text-2xl font-bold mb-4 text-gray-800">网络层的路由与转发</h3>
                        <p class="text-gray-700 mb-4">网络层负责数据在不同网络间的路由选择和转发。</p>
                        <ul class="text-gray-700 space-y-2">
                            <li><i class="fas fa-route text-indigo-400 mr-2"></i>IP数据包封装</li>
                            <li><i class="fas fa-map-marked-alt text-indigo-400 mr-2"></i>路由选择</li>
                            <li><i class="fas fa-traffic-light text-indigo-400 mr-2"></i>分组转发</li>
                        </ul>
                    </div>
                </div>
                <div class="md:col-span-8">
                    <div class="bg-white rounded-xl shadow-lg p-8 h-full card-hover">
                        <h4 class="text-xl font-semibold mb-4 text-gray-800 flex items-center">
                            <i class="fas fa-globe-americas text-indigo-500 mr-3"></i>网络层工作原理
                        </h4>
                        <p class="text-gray-700 mb-4">
                            传输层的数据包被传递到网络层。网络层的主要任务是负责数据在不同网络之间的路由选择和转发。IP协议是网络层的核心协议。
                        </p>
                        <div class="bg-gray-100 p-4 rounded-lg mb-4">
                            <h5 class="font-bold text-gray-700 mb-2">IP数据包头部关键字段</h5>
                            <div class="grid md:grid-cols-3 gap-4">
                                <div class="bg-white p-3 rounded">
                                    <div class="text-sm font-semibold text-indigo-600">源IP地址</div>
                                    <div class="text-xs text-gray-600">发送方的IP地址</div>
                                </div>
                                <div class="bg-white p-3 rounded">
                                    <div class="text-sm font-semibold text-indigo-600">目标IP地址</div>
                                    <div class="text-xs text-gray-600">接收方的IP地址</div>
                                </div>
                                <div class="bg-white p-3 rounded">
                                    <div class="text-sm font-semibold text-indigo-600">TTL</div>
                                    <div class="text-xs text-gray-600">生存时间，防止无限循环</div>
                                </div>
                            </div>
                        </div>
                        <p class="text-gray-700">
                            路由器是网络层的关键设备，它根据路由表选择最佳路径转发数据包。每个路由器都会检查目标IP地址，决定下一跳的转发方向，直到数据包到达目标网络。
                        </p>
                    </div>
                </div>
            </div>

            <!-- Step 4 & 5 -->
            <div class="grid md:grid-cols-2 gap-8 mb-12">
                <div class="bg-white rounded-xl shadow-lg p-8 card-hover">
                    <div class="text-indigo-500 text-3xl mb-4">04</div>
                    <h3 class="text-2xl font-bold mb-4 text-gray-800">数据链路层的帧封装</h3>
                    <p class="text-gray-700 mb-4">
                        网络层的IP数据包被传递到数据链路层。数据链路层负责在同一网络段内的数据传输，并将数据封装成帧(Frame)。
                    </p>
                    <ul class="text-gray-700 space-y-2 mb-4">
                        <li><i class="fas fa-ethernet text-indigo-400 mr-2"></i>帧封装：添加MAC地址信息</li>
                        <li><i class="fas fa-shield-virus text-indigo-400 mr-2"></i>错误检测：CRC校验</li>
                        <li><i class="fas fa-wifi text-indigo-400 mr-2"></i>物理传输：通过介质发送</li>
                    </ul>
                    <div class="bg-yellow-50 p-4 rounded-lg border border-yellow-100">
                        <p class="text-yellow-800 text-sm">
                            <i class="fas fa-lightbulb mr-2"></i>MAC地址是数据链路层的寻址方式，用于标识同一网络内的设备。
                        </p>
                    </div>
                </div>
                <div class="bg-white rounded-xl shadow-lg p-8 card-hover">
                    <div class="text-indigo-500 text-3xl mb-4">05</div>
                    <h3 class="text-2xl font-bold mb-4 text-gray-800">物理层的比特流传输</h3>
                    <p class="text-gray-700 mb-4">
                        物理层负责数据的实际传输。它将数据链路层的帧转化为比特流(0和1的序列)，通过物理介质进行传输。
                    </p>
                    <ul class="text-gray-700 space-y-2 mb-4">
                        <li><i class="fas fa-bolt text-indigo-400 mr-2"></i>比特传输：0和1的序列</li>
                        <li><i class="fas fa-plug text-indigo-400 mr-2"></i>信号转换：电/光/无线信号</li>
                        <li><i class="fas fa-satellite-dish text-indigo-400 mr-2"></i>介质传输：电缆/光纤/无线</li>
                    </ul>
                    <div class="bg-green-50 p-4 rounded-lg border border-green-100">
                        <p class="text-green-800 text-sm">
                            <i class="fas fa-lightbulb mr-2"></i>物理层不关心数据含义，只负责原始比特流的传输。
                        </p>
                    </div>
                </div>
            </div>

            <!-- Step 6 -->
            <div class="bg-white rounded-xl shadow-lg p-8 card-hover">
                <div class="text-indigo-500 text-3xl mb-4">06</div>
                <h3 class="text-2xl font-bold mb-4 text-gray-800">接收端的解封装与处理</h3>
                <p class="text-gray-700 mb-6">
                    数据在物理层被传送到目标计算机后，逐层向上传递，每一层都会对接收到的数据进行解封装，提取上层协议的数据。
                </p>
                <div class="grid md:grid-cols-2 gap-6">
                    <div>
                        <h4 class="text-lg font-semibold mb-3 text-gray-800">解封装过程</h4>
                        <ol class="text-gray-700 space-y-3">
                            <li class="flex items-start">
                                <span class="bg-indigo-100 text-indigo-800 rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">1</span>
                                <span>物理层接收比特流并转换为帧</span>
                            </li>
                            <li class="flex items-start">
                                <span class="bg-indigo-100 text-indigo-800 rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">2</span>
                                <span>数据链路层检查帧完整性，提取IP数据包</span>
                            </li>
                            <li class="flex items-start">
                                <span class="bg-indigo-100 text-indigo-800 rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">3</span>
                                <span>网络层检查IP地址，提取传输层数据包</span>
                            </li>
                            <li class="flex items-start">
                                <span class="bg-indigo-100 text-indigo-800 rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">4</span>
                                <span>传输层检查端口号，重组数据段</span>
                            </li>
                            <li class="flex items-start">
                                <span class="bg-indigo-100 text-indigo-800 rounded-full w-6 h-6 flex items-center justify-center mr-3 flex-shrink-0">5</span>
                                <span>应用层接收并处理最终数据</span>
                            </li>
                        </ol>
                    </div>
                    <div>
                        <div class="mermaid">
                            graph LR
                                A[物理层: 接收比特流] --> B[数据链路层: 解帧]
                                B --> C[网络层: 解IP包]
                                C --> D[传输层: 解TCP/UDP段]
                                D --> E[应用层: 处理数据]
                        </div>
                    </div>
                </div>
            </div>
        </section>

        <!-- Summary -->
        <section class="mb-20">
            <div class="bg-gradient-to-r from-indigo-500 to-purple-600 rounded-xl shadow-lg p-8 text-white">
                <h2 class="text-2xl font-bold mb-6">数据传输过程总结</h2>
                <div class="grid md:grid-cols-3 gap-6">
                    <div class="bg-white bg-opacity-10 p-6 rounded-lg backdrop-blur-sm">
                        <div class="text-4xl mb-4 flex justify-center">
                            <i class="fas fa-layer-group"></i>
                        </div>
                        <h3 class="font-bold mb-3 text-center">分层处理</h3>
                        <p class="text-sm text-white text-opacity-90 text-center">
                            数据在发送端自上而下封装，在接收端自下而上解封装，各层功能明确，分工协作。
                        </p>
                    </div>
                    <div class="bg-white bg-opacity-10 p-6 rounded-lg backdrop-blur-sm">
                        <div class="text-4xl mb-4 flex justify-center">
                            <i class="fas fa-shield-alt"></i>
                        </div>
                        <h3 class="font-bold mb-3 text-center">可靠传输</h3>
                        <p class="text-sm text-white text-opacity-90 text-center">
                            通过校验和、序列号、确认应答等机制确保数据准确无误地传输。
                        </p>
                    </div>
                    <div class="bg-white bg-opacity-10 p-6 rounded-lg backdrop-blur-sm">
                        <div class="text-4xl mb-4 flex justify-center">
                            <i class="fas fa-project-diagram"></i>
                        </div>
                        <h3 class="font-bold mb-3 text-center">路由寻址</h3>
                        <p class="text-sm text-white text-opacity-90 text-center">
                            IP地址实现全球寻址，MAC地址实现本地寻址，共同完成端到端通信。
                        </p>
                    </div>
                </div>
            </div>
        </section>
    </main>

    <!-- Footer -->
    <footer class="bg-gray-900 text-gray-300 py-12">
        <div class="container mx-auto max-w-6xl px-4">
            <div class="flex flex-col md:flex-row justify-between items-center">
                <div class="mb-6 md:mb-0">
                    <h3 class="text-xl font-bold text-white mb-2">技术小馆</h3>
                    <p class="text-gray-400">探索技术奥秘，传播知识价值</p>
                </div>
                <div>
                    <a href="http://www.yuque.com/jtostring" class="footer-link text-white hover:text-indigo-300 inline-flex items-center">
                        <i class="fas fa-external-link-alt mr-2"></i>访问技术小馆
                    </a>
                </div>
            </div>
            <div class="border-t border-gray-800 mt-8 pt-8 text-sm text-gray-500 text-center">
                <p>© 2023 技术小馆. 保留所有权利.</p>
            </div>
        </div>
    </footer>

    <script>
        mermaid.initialize({
            startOnLoad: true,
            theme: 'default',
            flowchart: {
                useMaxWidth: true,
                htmlLabels: true,
                curve: 'basis'
            }
        });
    </script>
</body>
</html>
```